package com.ruoyi.system.service;

import com.ruoyi.system.domain.Medal;

import java.util.List;

/**
 * 勋章Service接口
 * 
 * @author ruoyi
 * @date 2025-04-25
 */
public interface IMedalService 
{
    /**
     * 查询勋章
     * 
     * @param id 勋章主键
     * @return 勋章
     */
    public Medal selectMedalById(Long id);

    /**
     * 查询勋章列表
     * 
     * @param medal 勋章
     * @return 勋章集合
     */
    public List<Medal> selectMedalList(Medal medal);

    /**
     * 新增勋章
     * 
     * @param medal 勋章
     * @return 结果
     */
    public int insertMedal(Medal medal);

    /**
     * 修改勋章
     * 
     * @param medal 勋章
     * @return 结果
     */
    public int updateMedal(Medal medal);

    /**
     * 批量删除勋章
     * 
     * @param ids 需要删除的勋章主键集合
     * @return 结果
     */
    public int deleteMedalByIds(Long[] ids);

    /**
     * 删除勋章信息
     * 
     * @param id 勋章主键
     * @return 结果
     */
    public int deleteMedalById(Long id);
    /** 根据用户积分检查并发放可获取的勋章 */
    void checkAndGrantMedals(Long userId, Long currentPoints);

    /**
     * 查询下一个可获得的勋章
     *
     * @param currentPoints 当前用户积分
     * @return 勋章信息
     */
    Medal selectNextMedal(Integer currentPoints);
}
